package com.shangyueshang.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.shangyueshang.enums.UserStatus;
import com.shangyueshang.handlers.StringTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author JokeyFeng
 * @date: 2022/1/3
 * @project: shangyueshang
 * @package: com.shangyueshang.model
 * @comment: <p>系统用户表</p>
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@TableName(autoResultMap = true)
public class SysUser extends BaseModel implements Serializable {
	
	/**
	 * 用户名称
	 */
	private String name;
	
	/**
	 * 昵称
	 */
	private String nickName;
	
	/**
	 * 头像
	 */
	private String avatar;
	
	/**
	 * 密码
	 */
	@JsonIgnore
	private String password;
	
	/**
	 * 加密盐
	 */
	private String salt;
	
	/**
	 * 邮箱
	 */
	private String email;
	
	/**
	 * 手机号码
	 */
	private String mobile;
	
	/**
	 * 状态，0禁用 1启用
	 *
	 * @see UserStatus
	 */
	private Integer status;
	
	/**
	 * 部门机构ID
	 */
	private Long deptId;
	
	/**
	 * push_plus_token
	 */
	private String pushPlusToken;
	
	/**
	 * 授权店铺
	 */
	@TableField(typeHandler = StringTypeHandler.class)
	private List<String> authorizedShops;
	
	
	/**
	 * 是否删除，-1已删除 0正常
	 */
	private Integer delFlag;
	
	/**
	 * 非数据库字段
	 */
	@JsonIgnore
	@TableField(exist = false)
	private String deptName;
	
	/**
	 * 非数据库字段
	 */
	@JsonIgnore
	@TableField(exist = false)
	private String roleNames;
	
	/**
	 * 非数据库字段
	 */
	@TableField(exist = false)
	private List<SysUserRole> userRoles = new ArrayList<>();
}
